package com.example.myapplication;

import android.os.Bundle;
import android.support.animation.SpringAnimation;
import android.support.animation.SpringForce;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

//弹簧动画
public class SpringAnimationActivity extends AppCompatActivity {
    Button button;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_spring);
        button = findViewById(R.id.btn);

        // 0 表示被作用对象的最终位置
        SpringForce springForce = new SpringForce(0)
                //方法设置弹性阻尼，dampingRatio越大，摆动次数越少，当到1的时候完全不摆动，注意它体验出来的最明显的特征是摆动次数这个概念，
                .setDampingRatio(SpringForce.DAMPING_RATIO_MEDIUM_BOUNCY)
                //方法设置弹性的生硬度，stiffness值越小，弹簧越容易摆动，摆动的时间越长，反之摆动时间越短，注意它体验出来的最明显的特征是摆动时间这个概念。
                .setStiffness(SpringForce.STIFFNESS_VERY_LOW);

        final SpringAnimation anim = new SpringAnimation(button, SpringAnimation.TRANSLATION_Y).setSpring(springForce);


        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                anim.cancel();
                anim.setStartValue(-500);
                //anim.setStartVelocity(-100);
                anim.start();

            }
        });
    }
}
